iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
Mobile Development

顏色 countenance APP製作筆記系列 第 14

[Day 14] Core Data設定

  • 分享至 

  • xImage
  •  

雖然可以從Firebase取得雲端資料,但有時需要的資料量非常龐大,從雲端讀取會花費不少時間,這時如果把資料改存在手機上,直接從本地讀取,讀取的時間就能減少許多!因此在「顏色」app中,我決定將不須與朋友共享的內容存到Core Data中。
Core Data由蘋果公司開發,是設計用來儲存資料的框架,背後雖然以SQLite的資料格式運作,但簡化許多資料庫的處理,讓開發人員不用了解SQL指令也可以快速的為應用程式建立並使用資料庫。

Core Data設定

參考資料:https://hsin.tw/swiftgo/database/coredata.html

  1. 開啟建置的Xcode專案,點擊「Demo.xcdatamodeled」檔案後,點擊紅框「Add Entity」按鈕
    https://ithelp.ithome.com.tw/upload/images/20200928/201304588WEj4hsJOU.png

  2. 「Entity」可視為事件的資料夾,裡面含有各種事件資訊,命名時第一個字必須是英文大寫。「顏色」app需要儲存使用者的資料,右鍵雙擊剛新增的Entity,將其命名為「User」
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458wKDXODWIbH.jpg

  3. 點擊紅框中的「+」新增使用者的事件內容,這裡新增名稱為「nickName」、「firestoreID」的Attribute,用來儲存使用者的「暱稱」和「firebase的ID」,並設定型別皆為「String」,以字串的型別儲存資料
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458s4Vwqrk9WV.png

    • Attribute:事件的稱謂,命名時第一個字必須是英文小寫
    • Type:事件的型別,點選下拉選單可選擇不同型別
  4. 為了判斷不同的使用者,新增名稱為「uuid」的Attribute來儲存使用者的「唯一識別碼」,Core Data有提供「UUID」的型別,之後可使用Core Data函式自動生成UUID
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458TvKo3et9VT.jpg

    • UUID:用來識別事件的唯一識別資訊,建立後的UUID不會和資料庫其他事件的UUID重複,因此可透過UUID來查詢事件。
  5. 依照第3點和第4點的做法,可新增多個事件資料夾,接下來就可以設定資料夾與資料夾間的關係。在「顏色」app裡,我額外新增「DateInfo」來儲存使用者每日事件,裡面有「date」、「eventCount」、「uuid」三個事件Attribute
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458objY8VvzKR.jpg

  6. 「顏色」app提供使用者每日新增多筆資料,因此需設置「User」和「DateInfo」資料夾間的關係。點擊紅框中的「+」新增關係,這裡新增名稱為「toManyDate」的Relationship,並將關係對象指定為「DateInfo」的資料夾
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458BqI3OQSZdv.png

    • Relationship:關係的稱謂,命名時第一個字必須是英文小寫
    • Destination:關係的對象,點選下拉選單可選擇現有的ENTITIES
  7. 由於一個「User」會有產生許多的「DateInfo」資料,點擊紅框的圖示,將Type類型選擇「To Many」,點選後會發現「toManyDate」前的圖示由「O」變成「M」
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458PtZYKGQkap.png

  8. 設定完「User」對「DateInfo」的關係後,接下來設定「DateInfo」對「User」的關係,因為一筆「DateInfo」資料只會對到一個「User」,因此「toOneUser」的Type類型選擇「To One」。Inverse下拉選單中選擇「toManyDate」,設定「toManyDate」和「toOneUser」為相互關係
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458RsVfWG953M.jpg

    • Inverse:設定相互的關係,點選下拉選單可選擇目前有的Relationship
  9. 點選「User」資料夾,確認「toManyDate」的Inverse是否自動設為「toOneUser」,若有則代表關係設定成功
    https://ithelp.ithome.com.tw/upload/images/20200928/20130458i0WYwjAln6.png


上一篇
[Day 13] Firestore資料存取
下一篇
[Day 15] Core Data資料存取
系列文
顏色 countenance APP製作筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言